home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 201 / DPCS1104.ISO / Full / QuickBooks / QBTutor / Lesson5 / Lesson5.dcr / 00117_Invoice Management.ls < prev    next >
Encoding:
Text File  |  2001-02-01  |  6.7 KB  |  198 lines

  1. global InvoiceFormTemplate, pgProvinceCode, taxGST, taxPST, taxPiggy, listEditable, listInduhvidual, immutableInvoices, mutableInvoices
  2.  
  3. on clearNewInvoiceFields
  4.   put EMPTY into member "field:Customer:Job"
  5.   put "Service Invoice" into member "field:Form Template"
  6.   InvoiceFormTemplate = "Service Invoice"
  7.   put EMPTY into member "field:Date"
  8.   put EMPTY into member "field:Bill To"
  9.   put EMPTY into member "field:Ship To"
  10.   put EMPTY into member "field:P.O. No."
  11.   put EMPTY into member "field:Terms"
  12.   put EMPTY into member "field:Rep"
  13.   put EMPTY into member "field:Ship date"
  14.   put EMPTY into member "field:Via"
  15.   put EMPTY into member "field:F.O.B."
  16.   repeat with i = 1 to 4
  17.     put EMPTY into member ("field:Item" & string(i))
  18.     put EMPTY into member ("field:Qty" & string(i))
  19.     put EMPTY into member ("field:Desc" & string(i))
  20.     put EMPTY into member ("field:Rate" & string(i))
  21.     put EMPTY into member ("field:Amount" & string(i))
  22.     put EMPTY into member ("field:Tax" & string(i))
  23.   end repeat
  24.   put EMPTY into member "field:Customer Message"
  25.   put EMPTY into member "field:Memo"
  26.   put "0.00" into member "GST value"
  27.   put "0.00" into member "PST value"
  28.   put EMPTY into member "Total value"
  29.   put "0.00" into member "Balance value"
  30.   t = immutableInvoices.count + mutableInvoices.count
  31.   put string(t + 1) into member "field:Invoice #"
  32. end
  33.  
  34. on fillInInvoiceFields invoiceList
  35.   put getProp(invoiceList, #CustomerJob) into member "field:Customer:Job"
  36.   put getProp(invoiceList, #FormTemplate) into member "field:Form Template"
  37.   InvoiceFormTemplate = getProp(invoiceList, #FormTemplate)
  38.   put getProp(invoiceList, #InvDate) into member "field:Date"
  39.   put getProp(invoiceList, #InvNumber) into member "field:Invoice #"
  40.   put getProp(invoiceList, #BillTo) into member "field:Bill To"
  41.   put getProp(invoiceList, #ShipTo) into member "field:Ship To"
  42.   put getProp(invoiceList, #PONum) into member "field:P.O. No."
  43.   put getProp(invoiceList, #Terms) into member "field:Terms"
  44.   put getProp(invoiceList, #Rep) into member "field:Rep"
  45.   put getProp(invoiceList, #ShipDate) into member "field:Ship date"
  46.   put getProp(invoiceList, #Via) into member "field:Via"
  47.   put getProp(invoiceList, #FOB) into member "field:F.O.B."
  48.   put getProp(invoiceList, #CustMess) into member "field:Customer Message"
  49.   put getProp(invoiceList, #Memo) into member "field:Memo"
  50.   tList = getProp(invoiceList, "ItemList")
  51.   if tList = VOID then
  52.     tList = []
  53.   end if
  54.   tVATtotal = 0.0
  55.   repeat with i = 1 to tList.count
  56.     put getProp(tList[i], #InvItem) into member ("field:Item" & string(i))
  57.     put getProp(tList[i], #InvQty) into member ("field:Qty" & string(i))
  58.     put getProp(tList[i], #InvDesc) into member ("field:Desc" & string(i))
  59.     put getProp(tList[i], #InvRate) into member ("field:Rate" & string(i))
  60.     put getProp(tList[i], #InvAmount) into member ("field:Amount" & string(i))
  61.     put getProp(tList[i], #InvTax) into member ("field:Tax" & string(i))
  62.     tcalc = 0.0
  63.     if getProp(tList[i], #InvTax) = "S" then
  64.       tcalc = (value(getProp(tList[i], #InvAmount)) * 0.17499999999999999) + 0.0
  65.       tVATtotal = tVATtotal + tcalc
  66.     end if
  67.     put string(tcalc) into member ("field:VAT" & string(i))
  68.   end repeat
  69.   member("GST value").text = string(tVATtotal)
  70.   reCalcInvoice()
  71. end
  72.  
  73. on saveNewInvoice
  74.   if listInduhvidual < 0 then
  75.     idx = mutableInvoices.length
  76.   else
  77.     idx = listInduhvidual
  78.   end if
  79.   corpse = [:]
  80.   corpse.addProp(#CustomerJob, member("field:Customer:Job").text)
  81.   corpse.addProp(#FormTemplate, member("field:Form Template").text)
  82.   corpse.addProp(#InvDate, member("field:Date").text)
  83.   corpse.addProp(#InvNumber, member("field:Invoice #").text)
  84.   corpse.addProp(#BillTo, member("field:Bill To").text)
  85.   corpse.addProp(#ShipTo, member("field:Ship To").text)
  86.   corpse.addProp(#PONum, member("field:P.O. No.").text)
  87.   corpse.addProp(#Terms, member("field:Terms").text)
  88.   corpse.addProp(#Rep, member("field:Terms").text)
  89.   corpse.addProp(#ShipDate, member("field:Ship date").text)
  90.   corpse.addProp(#Via, member("field:Via").text)
  91.   corpse.addProp(#FOB, member("field:F.O.B.").text)
  92.   corpse.addProp(#CustMess, member("field:Customer Message").text)
  93.   corpse.addProp(#Memo, member("field:Memo").text)
  94.   corpseLine = []
  95.   repeat with i = 1 to 4
  96.     if member("field:Item" & string(i)).text <> EMPTY then
  97.       corpseLineX = [:]
  98.       corpseLineX.addProp(#InvItem, member("field:Item" & string(i)).text)
  99.       corpseLineX.addProp(#InvQty, member("field:Qty" & string(i)).text)
  100.       corpseLineX.addProp(#InvDesc, member("field:Desc" & string(i)).text)
  101.       corpseLineX.addProp(#InvRate, member("field:Rate" & string(i)).text)
  102.       corpseLineX.addProp(#InvAmount, member("field:Amount" & string(i)).text)
  103.       corpseLineX.addProp(#InvTax, member("field:Tax" & string(i)).text)
  104.       corpseLine.add(corpseLineX)
  105.     end if
  106.   end repeat
  107.   corpse.addProp(#itemList, corpseLine)
  108.   if listEditable = "TRUE" then
  109.     if listInduhvidual < 0 then
  110.       mutableInvoices.add(corpse)
  111.     else
  112.       mutableInvoices[listInduhvidual] = corpse
  113.     end if
  114.   end if
  115. end
  116.  
  117. on reCalcInvoice
  118. end
  119.  
  120. on reCalcInvoice2
  121.   sprGrid = []
  122.   t = [:]
  123.   t.addProp(#Qty, 79)
  124.   t.addProp(#Pri, 81)
  125.   t.addProp(#Amt, 82)
  126.   t.addProp(#Tax, 83)
  127.   sprGrid.add(t)
  128.   t = [:]
  129.   t.addProp(#Qty, 85)
  130.   t.addProp(#Pri, 87)
  131.   t.addProp(#Amt, 88)
  132.   t.addProp(#Tax, 89)
  133.   sprGrid.add(t)
  134.   t = [:]
  135.   t.addProp(#Qty, 91)
  136.   t.addProp(#Pri, 93)
  137.   t.addProp(#Amt, 94)
  138.   t.addProp(#Tax, 95)
  139.   sprGrid.add(t)
  140.   t = [:]
  141.   t.addProp(#Qty, 97)
  142.   t.addProp(#Pri, 99)
  143.   t.addProp(#Amt, 100)
  144.   t.addProp(#Tax, 101)
  145.   sprGrid.add(t)
  146.   sprGST = 69
  147.   sprPST = 72
  148.   sprTot = 73
  149.   sprBal = 74
  150.   tGST = 0.0
  151.   tPST = 0.0
  152.   tTotal = 0.0
  153.   repeat with i = 1 to 4
  154.     tq = value(sprite(sprGrid[i].Qty).member.text)
  155.     if tq <= 0 then
  156.       tq = 1
  157.     end if
  158.     tot = 0.0
  159.     stot = EMPTY
  160.     if sprite(sprGrid[i].Pri).member.text <> EMPTY then
  161.       tot = (value(sprite(sprGrid[i].Pri).member.text) * tq) + 0.0
  162.       stot = string(tot)
  163.     end if
  164.     sprite(sprGrid[i].Amt).member.text = stot
  165.     tGSRate = 0.0
  166.     case sprite(sprGrid[i].Tax).member.text of
  167.       "S", "G":
  168.         tGSRate = taxGST
  169.       otherwise:
  170.         tGSRate = 0.0
  171.     end case
  172.     tPSRate = 0.0
  173.     case sprite(sprGrid[i].Tax).member.text of
  174.       "S", "P":
  175.         tPSRate = taxPST
  176.       otherwise:
  177.         tPSRate = 0.0
  178.     end case
  179.     tGST = tGST + (tot * tGSRate / 100)
  180.     if taxPiggy = "TRUE" then
  181.       tmp = tot + tGST
  182.       tPST = tPST + (tmp * tPSRate / 100)
  183.     else
  184.       tPST = tPST + (tot * tPSRate / 100)
  185.     end if
  186.     tTotal = tTotal + tot
  187.   end repeat
  188.   tTotal = tTotal + tGST + tPST + 0.0
  189.   sprite(sprGST).member.text = string(tGST)
  190.   sprite(sprPST).member.text = string(tPST)
  191.   if tTotal > 0 then
  192.     sprite(sprTot).member.text = string(tTotal)
  193.   else
  194.     sprite(sprTot).member.text = EMPTY
  195.   end if
  196.   sprite(sprBal).member.text = string(tTotal)
  197. end
  198.